Video streaming over packet switched networks allows for the transmission of data in the form of packets across a network. Packet switched networks for video streaming are widely used in the context of gaming and other forms of remote content delivery. Video streaming using packet switched networks involves a source (e.g., server) that transmits data in the form of packets to a destination (e.g., client device) over a network or network device.
Typically a network (e.g., cellular network) or network device (e.g., Wi-Fi router) stores data that cannot be immediately sent from a source to a destination, using queues. Data stored in the queue may then be subsequently forwarded to a destination. Each queue may be associated with a particular traffic flow and each queue may receive and store data packets from a source (e.g., server) for subsequent transmission to a destination (e.g., client device).
Because of the dynamic nature of packet switched networks, the bitrate provided to a particular queue for transmission of its stored data packets to an associated destination may vary over time. For example, when additional traffic flows utilize the network or network device, the bitrate provided to an existing queue may decrease in order to allow for newly added queues to service the additional traffic flows. This may be referred to herein as cross traffic or congestion.
The dynamically changing nature of cross-traffic/congestion leads to an ever-changing bitrate being provided to a particular queue for transmission of its data packets to an associated destination, which may result in queue delay. Queue delay refers to the difference between send and receive time for a packet being transmitted from a source to a destination, less the minimal network transmission time. A source transmitting data packets to a queue at a fixed transmission rate may find that queue delay increases as the bitrate provided to its queue for transmission of data to the destination decreases. This is due to the source continuing to store packets at the network at a fixed rate, even though the network is unable to efficiently forward those stored packets to the destination. Increasing queue delay results in latency being experienced at the destination, which is undesirable in the context of video streaming.
Therefore, there is a need for a mechanism that allows for controlling a source transmission rate in response to queuing delay.